{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "view-in-github"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/huggingface/datasets/blob/main/notebooks/Overview.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "**⚠️ This notebook is deprecated in favor of the [Quickstart notebook](https://github.com/huggingface/notebooks/blob/main/datasets_doc/en/quickstart.ipynb)**"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zNp6kK7OvSUg",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "# HuggingFace 🤗 Datasets library - Quick overview\n",
        "\n",
        "Models come and go (linear models, LSTM, Transformers, ...) but two core elements have consistently been the beating heart of Natural Language Processing: Datasets & Metrics\n",
        "\n",
        "🤗 Datasets is a fast and efficient library to easily share and load datasets, already providing access to the public datasets in the [Hugging Face Hub](https://huggingface.co/datasets).\n",
        "\n",
        "The library has several interesting features (besides easy access to datasets):\n",
        "\n",
        "- Build-in interoperability with PyTorch, Tensorflow 2, Pandas and Numpy\n",
        "- Lighweight and fast library with a transparent and pythonic API\n",
        "- Strive on large datasets: frees you from RAM memory limits, all datasets are memory-mapped on drive by default.\n",
        "- Smart caching with an intelligent `tf.data`-like cache: never wait for your data to process several times\n",
        "\n",
        "🤗 Datasets originated from a fork of the awesome Tensorflow-Datasets and the HuggingFace team want to deeply thank the team behind this amazing library and user API. We have tried to keep a layer of compatibility with `tfds` and can provide conversion from one format to the other.\n",
        "To learn more about how to use metrics, take a look at the library 🤗 [Evaluate](https://huggingface.co/docs/evaluate/index)! In addition to metrics, you can find more tools for evaluating models and datasets."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dzk9aEtIvSUh",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "# Main datasets API\n",
        "\n",
        "This notebook is a quick dive in the main user API for loading datasets in `datasets`"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "my95uHbLyjwR",
        "outputId": "8db75d45-02b9-46ed-efc2-f8ff764fe3d7",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: datasets in /usr/local/lib/python3.10/dist-packages (2.12.0)\n",
            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from datasets) (1.22.4)\n",
            "Requirement already satisfied: pyarrow>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (9.0.0)\n",
            "Requirement already satisfied: dill<0.3.7,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.3.6)\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets) (1.5.3)\n",
            "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (2.27.1)\n",
            "Requirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (4.65.0)\n",
            "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from datasets) (3.2.0)\n",
            "Requirement already satisfied: multiprocess in /usr/local/lib/python3.10/dist-packages (from datasets) (0.70.14)\n",
            "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (2023.4.0)\n",
            "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets) (3.8.4)\n",
            "Requirement already satisfied: huggingface-hub<1.0.0,>=0.11.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.14.1)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from datasets) (23.1)\n",
            "Requirement already satisfied: responses<0.19 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.18.0)\n",
            "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (6.0)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (23.1.0)\n",
            "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (2.0.12)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.9.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.1)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0.0,>=0.11.0->datasets) (3.12.0)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0.0,>=0.11.0->datasets) (4.5.0)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (2022.12.7)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (3.4)\n",
            "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2022.7.1)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->datasets) (1.16.0)\n"
          ]
        }
      ],
      "source": [
        "# install datasets\n",
        "!pip install datasets"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "PVjXLiYxvSUl",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [],
      "source": [
        "# Let's import the library. We typically only need at most two methods:\n",
        "from datasets import list_datasets, load_dataset\n",
        "\n",
        "from pprint import pprint"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TNloBBx-vSUo",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "## Listing the currently available datasets"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "d3RJisGLvSUp",
        "outputId": "1ece3326-6977-48c8-ba37-6b1753f1d029",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "🤩 Currently 36662 datasets are available on the hub:\n",
            "['acronym_identification', 'ade_corpus_v2', 'adversarial_qa', 'aeslc',\n",
            " 'afrikaans_ner_corpus', 'ag_news', 'ai2_arc', 'air_dialogue',\n",
            " 'ajgt_twitter_ar', 'allegro_reviews', 'allocine', 'alt', 'amazon_polarity',\n",
            " 'amazon_reviews_multi', 'amazon_us_reviews', 'ambig_qa', 'americas_nli', 'ami',\n",
            " 'amttl', 'anli', 'app_reviews', 'aqua_rat', 'aquamuse', 'ar_cov19',\n",
            " 'ar_res_reviews', 'ar_sarcasm', 'arabic_billion_words', 'arabic_pos_dialect',\n",
            " 'arabic_speech_corpus', 'arcd', 'arsentd_lev', 'art', 'arxiv_dataset',\n",
            " 'ascent_kb', 'aslg_pc12', 'asnq', 'asset', 'assin', 'assin2', 'atomic',\n",
            " 'autshumato', 'facebook/babi_qa', 'banking77', 'bbaw_egyptian',\n",
            " 'bbc_hindi_nli', 'bc2gm_corpus', 'beans', 'best2009', 'bianet', 'bible_para',\n",
            " 'big_patent', 'billsum', 'bing_coronavirus_query_set', 'biomrc', 'biosses',\n",
            " 'blbooks', 'blbooksgenre', 'blended_skill_talk', 'blimp',\n",
            " 'blog_authorship_corpus', 'bn_hate_speech', 'bnl_newspapers', 'bookcorpus',\n",
            " 'bookcorpusopen', 'boolq', 'bprec', 'break_data', 'brwac', 'bsd_ja_en',\n",
            " 'bswac', 'c3', 'c4', 'cail2018', 'caner', 'capes', 'casino',\n",
            " 'catalonia_independence', 'cats_vs_dogs', 'cawac', 'cbt', 'cc100', 'cc_news',\n",
            " 'ccaligned_multilingual', 'cdsc', 'cdt', 'cedr', 'cfq', 'chr_en', 'cifar10',\n",
            " 'cifar100', 'circa', 'civil_comments', 'clickbait_news_bg', 'climate_fever',\n",
            " 'clinc_oos', 'clue', 'cmrc2018', 'cmu_hinglish_dog', 'cnn_dailymail',\n",
            " 'coached_conv_pref', '36562 more...']\n"
          ]
        }
      ],
      "source": [
        "# Currently available datasets\n",
        "datasets = list_datasets()\n",
        "\n",
        "print(f\"🤩 Currently {len(datasets)} datasets are available on the hub:\")\n",
        "pprint(datasets[:100] + [f\"{len(datasets) - 100} more...\"], compact=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7T5AG3BxvSUr",
        "outputId": "72b52fbd-2344-4802-f040-83d640cbf899",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'_id': '621ffdd236468d709f181f95',\n",
            " 'author': None,\n",
            " 'cardData': {'annotations_creators': ['crowdsourced'],\n",
            "              'dataset_info': {'config_name': 'plain_text',\n",
            "                               'dataset_size': 89789763,\n",
            "                               'download_size': 35142551,\n",
            "                               'features': [{'dtype': 'string', 'name': 'id'},\n",
            "                                            {'dtype': 'string',\n",
            "                                             'name': 'title'},\n",
            "                                            {'dtype': 'string',\n",
            "                                             'name': 'context'},\n",
            "                                            {'dtype': 'string',\n",
            "                                             'name': 'question'},\n",
            "                                            {'name': 'answers',\n",
            "                                             'sequence': [{'dtype': 'string',\n",
            "                                                           'name': 'text'},\n",
            "                                                          {'dtype': 'int32',\n",
            "                                                           'name': 'answer_start'}]}],\n",
            "                               'splits': [{'name': 'train',\n",
            "                                           'num_bytes': 79317110,\n",
            "                                           'num_examples': 87599},\n",
            "                                          {'name': 'validation',\n",
            "                                           'num_bytes': 10472653,\n",
            "                                           'num_examples': 10570}]},\n",
            "              'language': ['en'],\n",
            "              'language_creators': ['crowdsourced', 'found'],\n",
            "              'license': ['cc-by-4.0'],\n",
            "              'multilinguality': ['monolingual'],\n",
            "              'paperswithcode_id': 'squad',\n",
            "              'pretty_name': 'SQuAD',\n",
            "              'size_categories': ['10K<n<100K'],\n",
            "              'source_datasets': ['extended|wikipedia'],\n",
            "              'task_categories': ['question-answering'],\n",
            "              'task_ids': ['extractive-qa'],\n",
            "              'train-eval-index': [{'col_mapping': {'answers': {'answer_start': 'answer_start',\n",
            "                                                                'text': 'text'},\n",
            "                                                    'context': 'context',\n",
            "                                                    'question': 'question'},\n",
            "                                    'config': 'plain_text',\n",
            "                                    'metrics': [{'name': 'SQuAD',\n",
            "                                                 'type': 'squad'}],\n",
            "                                    'splits': {'eval_split': 'validation',\n",
            "                                               'train_split': 'train'},\n",
            "                                    'task': 'question-answering',\n",
            "                                    'task_id': 'extractive_question_answering'}]},\n",
            " 'citation': '@article{2016arXiv160605250R,\\n'\n",
            "             '       author = {{Rajpurkar}, Pranav and {Zhang}, Jian and '\n",
            "             '{Lopyrev},\\n'\n",
            "             '                 Konstantin and {Liang}, Percy},\\n'\n",
            "             '        title = \"{SQuAD: 100,000+ Questions for Machine '\n",
            "             'Comprehension of Text}\",\\n'\n",
            "             '      journal = {arXiv e-prints},\\n'\n",
            "             '         year = 2016,\\n'\n",
            "             '          eid = {arXiv:1606.05250},\\n'\n",
            "             '        pages = {arXiv:1606.05250},\\n'\n",
            "             'archivePrefix = {arXiv},\\n'\n",
            "             '       eprint = {1606.05250},\\n'\n",
            "             '}',\n",
            " 'description': 'Stanford Question Answering Dataset (SQuAD) is a reading '\n",
            "                'comprehension dataset, consisting of questions posed by '\n",
            "                'crowdworkers on a set of Wikipedia articles, where the answer '\n",
            "                'to every question is a segment of text, or span, from the '\n",
            "                'corresponding reading passage, or the question might be '\n",
            "                'unanswerable.',\n",
            " 'disabled': False,\n",
            " 'downloads': 190504,\n",
            " 'gated': False,\n",
            " 'id': 'squad',\n",
            " 'lastModified': '2023-04-05T13:40:31.000Z',\n",
            " 'likes': 88,\n",
            " 'paperswithcode_id': 'squad',\n",
            " 'private': False,\n",
            " 'sha': '5fe18c4c680f9922d794e3f4dd673a751c74ee37',\n",
            " 'siblings': [],\n",
            " 'tags': ['task_categories:question-answering',\n",
            "          'task_ids:extractive-qa',\n",
            "          'annotations_creators:crowdsourced',\n",
            "          'language_creators:crowdsourced',\n",
            "          'language_creators:found',\n",
            "          'multilinguality:monolingual',\n",
            "          'size_categories:10K<n<100K',\n",
            "          'source_datasets:extended|wikipedia',\n",
            "          'language:en',\n",
            "          'license:cc-by-4.0',\n",
            "          'arxiv:1606.05250']}\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_deprecation.py:229: FutureWarning: 'list_datasets' currently returns a list of objects but is planned to be a generator starting from version 0.14 in order to implement pagination. Please avoid to use `list_datasets(...).__getitem__` or explicitly convert the output to a list first with `list(iter(list_datasets)(...))`.\n",
            "  warnings.warn(self._deprecation_msg.format(attr_name=attr_name), FutureWarning)\n"
          ]
        }
      ],
      "source": [
        "# You can access various attributes of the datasets before downloading them\n",
        "squad_dataset = list_datasets(with_details=True)[datasets.index('squad')]\n",
        "\n",
        "pprint(squad_dataset.__dict__)  # It's a simple python dataclass"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9uqSkkSovSUt",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "## An example with SQuAD"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "aOXl6afcvSUu",
        "outputId": "b2e3d2cc-44b2-40c2-f566-8181fb4b8316",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.builder:Found cached dataset squad (/root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453)\n"
          ]
        }
      ],
      "source": [
        "# Downloading and loading a dataset\n",
        "dataset = load_dataset('squad', split='validation[:10%]')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rQ0G-eK3vSUw",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "This call to `datasets.load_dataset()` does the following steps under the hood:\n",
        "\n",
        "1. Download and import in the library the **SQuAD python processing script** from HuggingFace AWS bucket if it's not already stored in the library. You can find the SQuAD processing script [here](https://github.com/huggingface/datasets/tree/master/datasets/squad/squad.py) for instance.\n",
        "\n",
        "   Processing scripts are small python scripts which define the info (citation, description) and format of the dataset and contain the URL to the original SQuAD JSON files and the code to load examples from the original SQuAD JSON files.\n",
        "\n",
        "\n",
        "2. Run the SQuAD python processing script which will:\n",
        "    - **Download the SQuAD dataset** from the original URL (see the script) if it's not already downloaded and cached.\n",
        "    - **Process and cache** all SQuAD in a structured Arrow table for each standard splits stored on the drive.\n",
        "\n",
        "      Arrow table are arbitrarily long tables, typed with types that can be mapped to numpy/pandas/python standard types and can store nested objects. They can be directly access from drive, loaded in RAM or even streamed over the web.\n",
        "    \n",
        "\n",
        "3. Return a **dataset built from the splits** asked by the user (default: all); in the above example we create a dataset with the first 10% of the validation split."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fercoFwLvSUx",
        "outputId": "4674bcb6-edfa-4163-845e-fde18083d1a2",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'builder_name': 'squad',\n",
            " 'citation': '@article{2016arXiv160605250R,\\n'\n",
            "             '       author = {{Rajpurkar}, Pranav and {Zhang}, Jian and '\n",
            "             '{Lopyrev},\\n'\n",
            "             '                 Konstantin and {Liang}, Percy},\\n'\n",
            "             '        title = \"{SQuAD: 100,000+ Questions for Machine '\n",
            "             'Comprehension of Text}\",\\n'\n",
            "             '      journal = {arXiv e-prints},\\n'\n",
            "             '         year = 2016,\\n'\n",
            "             '          eid = {arXiv:1606.05250},\\n'\n",
            "             '        pages = {arXiv:1606.05250},\\n'\n",
            "             'archivePrefix = {arXiv},\\n'\n",
            "             '       eprint = {1606.05250},\\n'\n",
            "             '}\\n',\n",
            " 'config_name': 'plain_text',\n",
            " 'dataset_size': 89819092,\n",
            " 'description': 'Stanford Question Answering Dataset (SQuAD) is a reading '\n",
            "                'comprehension dataset, consisting of questions posed by '\n",
            "                'crowdworkers on a set of Wikipedia articles, where the answer '\n",
            "                'to every question is a segment of text, or span, from the '\n",
            "                'corresponding reading passage, or the question might be '\n",
            "                'unanswerable.\\n',\n",
            " 'download_checksums': {'https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json': {'checksum': None,\n",
            "                                                                                             'num_bytes': 4854279},\n",
            "                        'https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json': {'checksum': None,\n",
            "                                                                                               'num_bytes': 30288272}},\n",
            " 'download_size': 35142551,\n",
            " 'features': {'answers': Sequence(feature={'answer_start': Value(dtype='int32',\n",
            "                                                                 id=None),\n",
            "                                           'text': Value(dtype='string',\n",
            "                                                         id=None)},\n",
            "                                  length=-1,\n",
            "                                  id=None),\n",
            "              'context': Value(dtype='string', id=None),\n",
            "              'id': Value(dtype='string', id=None),\n",
            "              'question': Value(dtype='string', id=None),\n",
            "              'title': Value(dtype='string', id=None)},\n",
            " 'homepage': 'https://rajpurkar.github.io/SQuAD-explorer/',\n",
            " 'license': '',\n",
            " 'post_processed': None,\n",
            " 'post_processing_size': None,\n",
            " 'size_in_bytes': 124961643,\n",
            " 'splits': {'train': SplitInfo(name='train',\n",
            "                               num_bytes=79346108,\n",
            "                               num_examples=87599,\n",
            "                               shard_lengths=None,\n",
            "                               dataset_name='squad'),\n",
            "            'validation': SplitInfo(name='validation',\n",
            "                                    num_bytes=10472984,\n",
            "                                    num_examples=10570,\n",
            "                                    shard_lengths=None,\n",
            "                                    dataset_name='squad')},\n",
            " 'supervised_keys': None,\n",
            " 'task_templates': [QuestionAnsweringExtractive(task='question-answering-extractive',\n",
            "                                                question_column='question',\n",
            "                                                context_column='context',\n",
            "                                                answers_column='answers')],\n",
            " 'version': 1.0.0}\n"
          ]
        }
      ],
      "source": [
        "# Informations on the dataset (description, citation, size, splits, format...)\n",
        "# are provided in `dataset.info` (a simple python dataclass) and also as direct attributes in the dataset object\n",
        "pprint(dataset.info.__dict__)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GE0E87zsvSUz",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "## Inspecting and using the dataset: elements, slices and columns"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DKf4YFnevSU0",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "The returned `Dataset` object is a memory mapped dataset that behaves similarly to a normal map-style dataset. It is backed by an Apache Arrow table which allows many interesting features."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "tP1xPqSyvSU0",
        "outputId": "74de9886-cf30-4f11-f6c2-5037571f49f6",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Dataset({\n",
            "    features: ['id', 'title', 'context', 'question', 'answers'],\n",
            "    num_rows: 1057\n",
            "})\n"
          ]
        }
      ],
      "source": [
        "print(dataset)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "aiO3rC8yvSU2",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "You can query it's length and get items or slices like you would do normally with a python mapping."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "xxLcdj2yvSU3",
        "outputId": "1c5c069c-962c-4d7d-fae0-8750b929fe31",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "👉 Dataset len(dataset): 1057\n",
            "\n",
            "👉 First item 'dataset[0]':\n",
            "{'answers': {'answer_start': [177, 177, 177],\n",
            "             'text': ['Denver Broncos', 'Denver Broncos', 'Denver Broncos']},\n",
            " 'context': 'Super Bowl 50 was an American football game to determine the '\n",
            "            'champion of the National Football League (NFL) for the 2015 '\n",
            "            'season. The American Football Conference (AFC) champion Denver '\n",
            "            'Broncos defeated the National Football Conference (NFC) champion '\n",
            "            'Carolina Panthers 24–10 to earn their third Super Bowl title. The '\n",
            "            \"game was played on February 7, 2016, at Levi's Stadium in the San \"\n",
            "            'Francisco Bay Area at Santa Clara, California. As this was the '\n",
            "            '50th Super Bowl, the league emphasized the \"golden anniversary\" '\n",
            "            'with various gold-themed initiatives, as well as temporarily '\n",
            "            'suspending the tradition of naming each Super Bowl game with '\n",
            "            'Roman numerals (under which the game would have been known as '\n",
            "            '\"Super Bowl L\"), so that the logo could prominently feature the '\n",
            "            'Arabic numerals 50.',\n",
            " 'id': '56be4db0acb8001400a502ec',\n",
            " 'question': 'Which NFL team represented the AFC at Super Bowl 50?',\n",
            " 'title': 'Super_Bowl_50'}\n"
          ]
        }
      ],
      "source": [
        "print(f\"👉 Dataset len(dataset): {len(dataset)}\")\n",
        "print(\"\\n👉 First item 'dataset[0]':\")\n",
        "pprint(dataset[0])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zk1WQ_cczP5w",
        "outputId": "b5cb7002-1dc2-4ff8-8dfa-78019dec74ca",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "👉Slice of the two items 'dataset[10:12]':\n",
            "{'answers': [{'answer_start': [334, 334, 334],\n",
            "              'text': ['February 7, 2016', 'February 7', 'February 7, 2016']},\n",
            "             {'answer_start': [177, 177, 177],\n",
            "              'text': ['Denver Broncos', 'Denver Broncos', 'Denver Broncos']}],\n",
            " 'context': ['Super Bowl 50 was an American football game to determine the '\n",
            "             'champion of the National Football League (NFL) for the 2015 '\n",
            "             'season. The American Football Conference (AFC) champion Denver '\n",
            "             'Broncos defeated the National Football Conference (NFC) champion '\n",
            "             'Carolina Panthers 24–10 to earn their third Super Bowl title. '\n",
            "             \"The game was played on February 7, 2016, at Levi's Stadium in \"\n",
            "             'the San Francisco Bay Area at Santa Clara, California. As this '\n",
            "             'was the 50th Super Bowl, the league emphasized the \"golden '\n",
            "             'anniversary\" with various gold-themed initiatives, as well as '\n",
            "             'temporarily suspending the tradition of naming each Super Bowl '\n",
            "             'game with Roman numerals (under which the game would have been '\n",
            "             'known as \"Super Bowl L\"), so that the logo could prominently '\n",
            "             'feature the Arabic numerals 50.',\n",
            "             'Super Bowl 50 was an American football game to determine the '\n",
            "             'champion of the National Football League (NFL) for the 2015 '\n",
            "             'season. The American Football Conference (AFC) champion Denver '\n",
            "             'Broncos defeated the National Football Conference (NFC) champion '\n",
            "             'Carolina Panthers 24–10 to earn their third Super Bowl title. '\n",
            "             \"The game was played on February 7, 2016, at Levi's Stadium in \"\n",
            "             'the San Francisco Bay Area at Santa Clara, California. As this '\n",
            "             'was the 50th Super Bowl, the league emphasized the \"golden '\n",
            "             'anniversary\" with various gold-themed initiatives, as well as '\n",
            "             'temporarily suspending the tradition of naming each Super Bowl '\n",
            "             'game with Roman numerals (under which the game would have been '\n",
            "             'known as \"Super Bowl L\"), so that the logo could prominently '\n",
            "             'feature the Arabic numerals 50.'],\n",
            " 'id': ['56bea9923aeaaa14008c91bb', '56beace93aeaaa14008c91df'],\n",
            " 'question': ['What day was the Super Bowl played on?',\n",
            "              'Who won Super Bowl 50?'],\n",
            " 'title': ['Super_Bowl_50', 'Super_Bowl_50']}\n"
          ]
        }
      ],
      "source": [
        "# Or get slices with several examples:\n",
        "print(\"\\n👉Slice of the two items 'dataset[10:12]':\")\n",
        "pprint(dataset[10:12])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QXj2Qr5KvSU5",
        "outputId": "3b620962-ad0a-4b9e-c291-dc4560431d18",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['Which NFL team represented the AFC at Super Bowl 50?', 'Which NFL team represented the NFC at Super Bowl 50?', 'Where did Super Bowl 50 take place?', 'Which NFL team won Super Bowl 50?', 'What color was used to emphasize the 50th anniversary of the Super Bowl?', 'What was the theme of Super Bowl 50?', 'What day was the game played on?', 'What is the AFC short for?', 'What was the theme of Super Bowl 50?', 'What does AFC stand for?']\n"
          ]
        }
      ],
      "source": [
        "# You can get a full column of the dataset by indexing with its name as a string:\n",
        "print(dataset['question'][:10])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6Au7rqPMvSU7",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "The `__getitem__` method will return different format depending on the type of query:\n",
        "\n",
        "- Items like `dataset[0]` are returned as dict of elements.\n",
        "- Slices like `dataset[10:20]` are returned as dict of lists of elements.\n",
        "- Columns like `dataset['question']` are returned as a list of elements.\n",
        "\n",
        "This may seems surprising at first but in our experiments it's actually a lot easier to use for data processing than returning the same format for each of these views on the dataset."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6DB_y79cvSU8",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "In particular, you can easily iterate along columns in slices, and also naturally permute consecutive indexings with identical results as showed here by permuting column indexing with elements and slices:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wjGocqArvSU9",
        "outputId": "27cd92aa-e4ef-4c61-c47d-fdc189fa19b7",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "True\n",
            "True\n"
          ]
        }
      ],
      "source": [
        "print(dataset[0]['question'] == dataset['question'][0])\n",
        "print(dataset[10:20]['context'] == dataset['context'][10:20])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "b1-Kj1xQvSU_",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "### Dataset are internally typed and structured\n",
        "\n",
        "The dataset is backed by one (or several) Apache Arrow tables which are typed and allows for fast retrieval and access as well as arbitrary-size memory mapping.\n",
        "\n",
        "This means respectively that the format for the dataset is clearly defined and that you can load datasets of arbitrary size without worrying about RAM memory limitation (basically the dataset take no space in RAM, it's directly read from drive when needed with fast IO access)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "rAnp_RyPvSVA",
        "outputId": "9d1c7fe6-796e-48f5-d8e9-1a1f8a0fbdc1",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Column names:\n",
            "['id', 'title', 'context', 'question', 'answers']\n",
            "Features:\n",
            "{'answers': Sequence(feature={'answer_start': Value(dtype='int32', id=None),\n",
            "                              'text': Value(dtype='string', id=None)},\n",
            "                     length=-1,\n",
            "                     id=None),\n",
            " 'context': Value(dtype='string', id=None),\n",
            " 'id': Value(dtype='string', id=None),\n",
            " 'question': Value(dtype='string', id=None),\n",
            " 'title': Value(dtype='string', id=None)}\n"
          ]
        }
      ],
      "source": [
        "# You can inspect the dataset column names and types\n",
        "print(\"Column names:\")\n",
        "pprint(dataset.column_names)\n",
        "print(\"Features:\")\n",
        "pprint(dataset.features)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "au4v3mOQvSVC",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "### Additional misc properties"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "efFhDWhlvSVC",
        "outputId": "7f8f7be9-e3ec-4825-83c8-9f228d32e5c8",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "The number of rows 1057 also available as len(dataset) 1057\n",
            "The number of columns 5\n",
            "The shape (rows, columns) (1057, 5)\n"
          ]
        }
      ],
      "source": [
        "# Datasets also have shapes informations\n",
        "print(\"The number of rows\", dataset.num_rows, \"also available as len(dataset)\", len(dataset))\n",
        "print(\"The number of columns\", dataset.num_columns)\n",
        "print(\"The shape (rows, columns)\", dataset.shape)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1Ox7ppKDvSVN",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "## Modifying the dataset with `dataset.map`\n",
        "\n",
        "Now that we know how to inspect our dataset we also want to update it. For that there is a powerful method `.map()` which is inspired by `tf.data` map method and that you can use to apply a function to each examples, independently or in batch.\n",
        "\n",
        "`.map()` takes a callable accepting a dict as argument (same dict as the one returned by `dataset[i]`) and iterate over the dataset by calling the function on each example."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 106,
          "referenced_widgets": [
            "7edfe69de64a4af18febff677b57ab65",
            "dc5418db9c3e49cd95b3f85f0dc562ab",
            "8db902b229e545649282c130c2a049b8",
            "0b3581ddec0b4cabb33593e272a50249",
            "d580bdf43d1e44b8afcfefc962410d73",
            "cbcbb3853ed544f8b946aab31eaa7f56",
            "e21ced63bda64379832735d5aa2e0178",
            "757dd94ac5e04ff09ee6fab419f1692d",
            "d46a381be01a460cb49cc838c5aa29c0",
            "b3d5c33915084f26b060e086138bf898",
            "429bdd21215f4ef38687daa6def128f8"
          ]
        },
        "id": "Yz2-27HevSVN",
        "outputId": "0159107b-edb2-4b5a-b9a7-d6999bb5245c",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "7edfe69de64a4af18febff677b57ab65",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Map:   0%|          | 0/1057 [00:00<?, ? examples/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,179,179,179,179,179,179,179,179,179,179,179,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,704,704,704,704,704,704,704,704,704,704,704,704,704,704,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,306,306,306,306,306,306,306,306,306,306,306,306,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,260,260,260,260,260,260,260,260,260,874,874,874,874,874,874,874,874,874,874,874,874,874,874,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,536,536,536,536,536,536,536,536,536,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,495,495,495,495,495,495,495,495,495,495,495,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,441,441,441,441,441,441,441,441,441,441,441,357,357,357,357,357,357,357,357,357,296,296,296,296,296,296,296,296,296,296,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,804,804,804,804,804,804,804,804,804,804,804,397,397,397,397,397,397,397,397,397,397,397,397,397,397,360,360,360,360,360,360,360,973,973,973,973,973,973,973,973,973,973,973,973,973,973,263,263,263,263,263,263,263,263,263,263,263,568,568,568,568,568,568,568,568,568,568,568,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,892,892,892,892,892,892,892,892,892,892,892,206,206,206,206,206,489,489,489,489,489,489,489,489,489,489,489,489,489,181,181,181,181,181,181,181,181,181,181,181,181,531,531,531,531,531,531,531,531,531,531,531,531,664,664,664,664,664,664,664,664,664,664,664,664,664,664,672,672,672,672,672,672,672,672,672,672,672,672,672,672,858,858,858,858,858,858,858,858,858,858,858,858,634,634,634,634,634,634,634,634,634,634,634,634,634,634,891,891,891,891,891,891,891,891,891,891,891,891,891,488,488,488,488,488,488,488,488,488,488,488,488,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,522,522,522,522,522,1643,1643,1643,1643,1643,628,628,628,628,628,758,758,758,758,758,883,883,883,883,883,559,559,559,559,559,603,603,603,603,631,631,631,631,631,626,626,626,626,626,541,541,541,541,541,795,795,795,795,795,591,591,591,591,591,568,568,568,568,568,536,536,536,536,536,575,575,575,575,575,571,571,571,571,571,641,641,641,641,641,665,665,665,665,665,1088,1088,1088,1088,1088,1619,1619,1619,1619,1619,939,939,939,939,939,865,865,865,865,865,711,711,711,711,711,831,831,831,831,831,501,501,501,501,501,676,676,676,676,676,854,854,854,854,854,784,784,784,784,784,641,641,641,641,641,544,544,544,544,544,918,918,918,918,918,763,763,763,763,763,906,906,906,906,906,632,632,632,632,632,869,869,869,869,869,1044,1044,1044,1044,1044,760,760,760,760,760,715,715,715,715,715,838,838,838,838,838,881,881,881,881,881,940,940,940,940,940,618,618,618,618,618,1205,1205,1205,534,534,534,534,534,757,757,757,757,757,1239,1239,1239,1239,1239,609,609,609,609,609,798,798,798,798,798,613,613,613,613,613,613,613,613,613,613,"
          ]
        },
        {
          "data": {
            "text/plain": [
              "Dataset({\n",
              "    features: ['id', 'title', 'context', 'question', 'answers'],\n",
              "    num_rows: 1057\n",
              "})"
            ]
          },
          "execution_count": 14,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# Let's print the length of each `context` string in our subset of the dataset\n",
        "# (10% of the validation i.e. 1057 examples)\n",
        "\n",
        "dataset.map(lambda example: print(len(example['context']), end=','))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ta3celHnvSVP",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "This is basically the same as doing\n",
        "\n",
        "```python\n",
        "for example in dataset:\n",
        "    function(example)\n",
        "```"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Z4Fjr0DJawuS",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "The above examples was a bit verbose. We can control the logging level of 🤗 Datasets with it's logging module:\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 106,
          "referenced_widgets": [
            "961929641bfc4b06b0603bd792c6d351",
            "c497e117ef7142338bd45e57b722616b",
            "60682d73f15b4020b57f87dabba5f320",
            "51f49669810a4b5f941c18e4b1896866",
            "f4da65dff9374ace9b92d341ec2793f1",
            "9b5b8acd984f44d696f8f83862f20bf1",
            "f9fdd11e8b6f411e818447528be333df",
            "d8edc4f0a0a44882a7beeca0321276d6",
            "09e1966daf9e481da118af73af218d88",
            "21a2deb93c614338a9944b5032220c8d",
            "d8494cdc5ce04f4690a9adadb921de4c"
          ]
        },
        "id": "qAgptXFYaquI",
        "outputId": "c42c9177-92d2-4c63-eeea-d69dbd877e54",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "961929641bfc4b06b0603bd792c6d351",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Map:   0%|          | 0/1057 [00:00<?, ? examples/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,179,179,179,179,179,179,179,179,179,179,179,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,2060,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,704,704,704,704,704,704,704,704,704,704,704,704,704,704,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,306,306,306,306,306,306,306,306,306,306,306,306,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,260,260,260,260,260,260,260,260,260,874,874,874,874,874,874,874,874,874,874,874,874,874,874,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,536,536,536,536,536,536,536,536,536,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,495,495,495,495,495,495,495,495,495,495,495,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,441,441,441,441,441,441,441,441,441,441,441,357,357,357,357,357,357,357,357,357,296,296,296,296,296,296,296,296,296,296,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,804,804,804,804,804,804,804,804,804,804,804,397,397,397,397,397,397,397,397,397,397,397,397,397,397,360,360,360,360,360,360,360,973,973,973,973,973,973,973,973,973,973,973,973,973,973,263,263,263,263,263,263,263,263,263,263,263,568,568,568,568,568,568,568,568,568,568,568,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,892,892,892,892,892,892,892,892,892,892,892,206,206,206,206,206,489,489,489,489,489,489,489,489,489,489,489,489,489,181,181,181,181,181,181,181,181,181,181,181,181,531,531,531,531,531,531,531,531,531,531,531,531,664,664,664,664,664,664,664,664,664,664,664,664,664,664,672,672,672,672,672,672,672,672,672,672,672,672,672,672,858,858,858,858,858,858,858,858,858,858,858,858,634,634,634,634,634,634,634,634,634,634,634,634,634,634,891,891,891,891,891,891,891,891,891,891,891,891,891,488,488,488,488,488,488,488,488,488,488,488,488,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,522,522,522,522,522,1643,1643,1643,1643,1643,628,628,628,628,628,758,758,758,758,758,883,883,883,883,883,559,559,559,559,559,603,603,603,603,631,631,631,631,631,626,626,626,626,626,541,541,541,541,541,795,795,795,795,795,591,591,591,591,591,568,568,568,568,568,536,536,536,536,536,575,575,575,575,575,571,571,571,571,571,641,641,641,641,641,665,665,665,665,665,1088,1088,1088,1088,1088,1619,1619,1619,1619,1619,939,939,939,939,939,865,865,865,865,865,711,711,711,711,711,831,831,831,831,831,501,501,501,501,501,676,676,676,676,676,854,854,854,854,854,784,784,784,784,784,641,641,641,641,641,544,544,544,544,544,918,918,918,918,918,763,763,763,763,763,906,906,906,906,906,632,632,632,632,632,869,869,869,869,869,1044,1044,1044,1044,1044,760,760,760,760,760,715,715,715,715,715,838,838,838,838,838,881,881,881,881,881,940,940,940,940,940,618,618,618,618,618,1205,1205,1205,534,534,534,534,534,757,757,757,757,757,1239,1239,1239,1239,1239,609,609,609,609,609,798,798,798,798,798,613,613,613,613,613,613,613,613,613,613,"
          ]
        },
        {
          "data": {
            "text/plain": [
              "Dataset({\n",
              "    features: ['id', 'title', 'context', 'question', 'answers'],\n",
              "    num_rows: 1057\n",
              "})"
            ]
          },
          "execution_count": 15,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from datasets import logging\n",
        "logging.set_verbosity_warning()\n",
        "\n",
        "dataset.map(lambda example: print(len(example['context']), end=','))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "KfED6CEHa8J_",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [],
      "source": [
        "# Let's keep it verbose for our tutorial though\n",
        "from datasets import logging\n",
        "logging.set_verbosity_info()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i_Ouw5gDvSVP",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "The above example had no effect on the dataset because the method we supplied to `.map()` didn't return a `dict` or a `abc.Mapping` that could be used to update the examples in the dataset.\n",
        "\n",
        "In such a case, `.map()` will return the same dataset (`self`).\n",
        "\n",
        "Now let's see how we can use a method that actually modify the dataset."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cEnCi9DFvSVQ",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "### Modifying the dataset example by example"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kA37VgZhvSVQ",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "The main interest of `.map()` is to update and modify the content of the table and leverage smart caching and fast backend.\n",
        "\n",
        "To use `.map()` to update elements in the table you need to provide a function with the following signature: `function(example: dict) -> dict`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vUr65K-4vSVQ",
        "outputId": "0d770257-f8d0-45fc-8ae2-7f387210f068",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-242ccd893f32bdf9.arrow\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['My cute title: Super_Bowl_50', 'My cute title: Warsaw']\n"
          ]
        }
      ],
      "source": [
        "# Let's add a prefix 'My cute title: ' to each of our titles\n",
        "\n",
        "def add_prefix_to_title(example):\n",
        "    example['title'] = 'My cute title: ' + example['title']\n",
        "    return example\n",
        "\n",
        "prefixed_dataset = dataset.map(add_prefix_to_title)\n",
        "\n",
        "print(prefixed_dataset.unique('title'))  # `.unique()` is a super fast way to print the unique elemnts in a column (see the doc for all the methods)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "FcZ_amDAvSVS",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "This call to `.map()` compute and return the updated table. It will also store the updated table in a cache file indexed by the current state and the mapped function.\n",
        "\n",
        "A subsequent call to `.map()` (even in another python session) will reuse the cached file instead of recomputing the operation.\n",
        "\n",
        "You can test this by running again the previous cell, you will see that the result are directly loaded from the cache and not re-computed again.\n",
        "\n",
        "The updated dataset returned by `.map()` is (again) directly memory mapped from drive and not allocated in RAM."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Skbf8LUEvSVT",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "The function you provide to `.map()` should accept an input with the format of an item of the dataset: `function(dataset[0])` and return a python dict.\n",
        "\n",
        "The columns and type of the outputs can be different than the input dict. In this case the new keys will be added as additional columns in the dataset.\n",
        "\n",
        "Bascially each dataset example dict is updated with the dictionary returned by the function like this: `example.update(function(example))`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "d5De0CfTvSVT",
        "outputId": "e6282b6e-d9ce-4e8b-e0f4-6c9a34330bce",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-4f3eee21db868c87.arrow\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['My cutest title: Super_Bowl_50', 'My cutest title: Warsaw']\n"
          ]
        }
      ],
      "source": [
        "# Since the input example dict is updated with our function output dict,\n",
        "# we can actually just return the updated 'title' field\n",
        "titled_dataset = dataset.map(lambda example: {'title': 'My cutest title: ' + example['title']})\n",
        "\n",
        "print(titled_dataset.unique('title'))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Q5vny56-vSVV",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "#### Removing columns\n",
        "You can also remove columns when running map with the `remove_columns=List[str]` argument."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-sPWnsz-vSVW",
        "outputId": "c116e3cb-2fa4-4304-d6a5-d600b3bc4930",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-2800c1727354fbe2.arrow\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['id', 'context', 'question', 'answers', 'new_title']\n",
            "['Wouhahh: Super_Bowl_50', 'Wouhahh: Warsaw']\n"
          ]
        }
      ],
      "source": [
        "# This will remove the 'title' column while doing the update (after having send it the the mapped function so you can use it in your function!)\n",
        "less_columns_dataset = dataset.map(lambda example: {'new_title': 'Wouhahh: ' + example['title']}, remove_columns=['title'])\n",
        "\n",
        "print(less_columns_dataset.column_names)\n",
        "print(less_columns_dataset.unique('new_title'))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "G459HzD-vSVY",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "#### Using examples indices\n",
        "With `with_indices=True`, dataset indices (from `0` to `len(dataset)`) will be supplied to the function which must thus have the following signature: `function(example: dict, indice: int) -> dict`"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_kFL37R2vSVY",
        "outputId": "16a436d2-6a2e-4526-8016-b47273116a71",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-e23b98819de39aea.arrow\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['0: Which NFL team represented the AFC at Super Bowl 50?',\n",
            " '1: Which NFL team represented the NFC at Super Bowl 50?',\n",
            " '2: Where did Super Bowl 50 take place?',\n",
            " '3: Which NFL team won Super Bowl 50?',\n",
            " '4: What color was used to emphasize the 50th anniversary of the Super Bowl?']\n"
          ]
        }
      ],
      "source": [
        "# This will add the index in the dataset to the 'question' field\n",
        "with_indices_dataset = dataset.map(lambda example, idx: {'question': f'{idx}: ' + example['question']},\n",
        "                                   with_indices=True)\n",
        "\n",
        "pprint(with_indices_dataset['question'][:5])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xckhVEWFvSVb",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "### Modifying the dataset with batched updates"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dzmicbSnvSVb",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "`.map()` can also work with batch of examples (slices of the dataset).\n",
        "\n",
        "This is particularly interesting if you have a function that can handle batch of inputs like the tokenizers of HuggingFace `tokenizers`.\n",
        "\n",
        "To work on batched inputs set `batched=True` when calling `.map()` and supply a function with the following signature: `function(examples: Dict[List]) -> Dict[List]` or, if you use indices, `function(examples: Dict[List], indices: List[int]) -> Dict[List]`).\n",
        "\n",
        "Bascially, your function should accept an input with the format of a slice of the dataset: `function(dataset[:10])`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pxHbgSTL0itj",
        "outputId": "20471793-ca8e-4d06-80cd-4bf822eb0d40",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.29.2)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.0)\n",
            "Requirement already satisfied: huggingface-hub<1.0,>=0.14.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.14.1)\n",
            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.22.4)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n",
            "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0)\n",
            "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2022.10.31)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.27.1)\n",
            "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.13.3)\n",
            "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.65.0)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (2023.4.0)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (4.5.0)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2022.12.7)\n",
            "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.12)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n"
          ]
        }
      ],
      "source": [
        "!pip install transformers"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "T7gpEg0yvSVc",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [],
      "source": [
        "# Let's import a fast tokenizer that can work on batched inputs\n",
        "# (the 'Fast' tokenizers in HuggingFace)\n",
        "from transformers import BertTokenizerFast, logging as transformers_logging\n",
        "\n",
        "transformers_logging.set_verbosity_warning()\n",
        "\n",
        "tokenizer = BertTokenizerFast.from_pretrained('bert-base-cased')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fAmLTPC9vSVe",
        "outputId": "4388ecc8-049a-41cc-90cb-1d48fd05c8dd",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-1d272c8f779fd409.arrow\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "encoded_dataset[0]\n",
            "{'answers': {'answer_start': [177, 177, 177],\n",
            "             'text': ['Denver Broncos', 'Denver Broncos', 'Denver Broncos']},\n",
            " 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1],\n",
            " 'context': 'Super Bowl 50 was an American football game to determine the '\n",
            "            'champion of the National Football League (NFL) for the 2015 '\n",
            "            'season. The American Football Conference (AFC) champion Denver '\n",
            "            'Broncos defeated the National Football Conference (NFC) champion '\n",
            "            'Carolina Panthers 24–10 to earn their third Super Bowl title. The '\n",
            "            \"game was played on February 7, 2016, at Levi's Stadium in the San \"\n",
            "            'Francisco Bay Area at Santa Clara, California. As this was the '\n",
            "            '50th Super Bowl, the league emphasized the \"golden anniversary\" '\n",
            "            'with various gold-themed initiatives, as well as temporarily '\n",
            "            'suspending the tradition of naming each Super Bowl game with '\n",
            "            'Roman numerals (under which the game would have been known as '\n",
            "            '\"Super Bowl L\"), so that the logo could prominently feature the '\n",
            "            'Arabic numerals 50.',\n",
            " 'id': '56be4db0acb8001400a502ec',\n",
            " 'input_ids': [101, 3198, 5308, 1851, 1108, 1126, 1237, 1709, 1342, 1106, 4959,\n",
            "               1103, 3628, 1104, 1103, 1305, 2289, 1453, 113, 4279, 114, 1111,\n",
            "               1103, 1410, 1265, 119, 1109, 1237, 2289, 3047, 113, 10402, 114,\n",
            "               3628, 7068, 14722, 2378, 1103, 1305, 2289, 3047, 113, 24743, 114,\n",
            "               3628, 2938, 13598, 1572, 782, 1275, 1106, 7379, 1147, 1503, 3198,\n",
            "               5308, 1641, 119, 1109, 1342, 1108, 1307, 1113, 1428, 128, 117,\n",
            "               1446, 117, 1120, 12388, 112, 188, 3339, 1107, 1103, 1727, 2948,\n",
            "               2410, 3894, 1120, 3364, 10200, 117, 1756, 119, 1249, 1142, 1108,\n",
            "               1103, 13163, 3198, 5308, 117, 1103, 2074, 13463, 1103, 107, 5404,\n",
            "               5453, 107, 1114, 1672, 2284, 118, 12005, 11751, 117, 1112, 1218,\n",
            "               1112, 7818, 28117, 20080, 16264, 1103, 3904, 1104, 10505, 1296,\n",
            "               3198, 5308, 1342, 1114, 2264, 183, 15447, 16179, 113, 1223, 1134,\n",
            "               1103, 1342, 1156, 1138, 1151, 1227, 1112, 107, 3198, 5308, 149,\n",
            "               107, 114, 117, 1177, 1115, 1103, 7998, 1180, 15199, 2672, 1103,\n",
            "               4944, 183, 15447, 16179, 1851, 119, 102],\n",
            " 'question': 'Which NFL team represented the AFC at Super Bowl 50?',\n",
            " 'title': 'Super_Bowl_50',\n",
            " 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0]}\n"
          ]
        }
      ],
      "source": [
        "# Now let's batch tokenize our dataset 'context'\n",
        "encoded_dataset = dataset.map(lambda example: tokenizer(example['context']), batched=True)\n",
        "\n",
        "print(\"encoded_dataset[0]\")\n",
        "pprint(encoded_dataset[0], compact=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kNaJdKskvSVf",
        "outputId": "17855cc9-47d3-4060-840c-8e8cdd71290d",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['id',\n",
            " 'title',\n",
            " 'context',\n",
            " 'question',\n",
            " 'answers',\n",
            " 'input_ids',\n",
            " 'token_type_ids',\n",
            " 'attention_mask']\n"
          ]
        }
      ],
      "source": [
        "# we have added additional columns\n",
        "pprint(encoded_dataset.column_names)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "m3To8ztMvSVj",
        "outputId": "dc46c517-209f-4796-d70c-e99e6d42efe7",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-a915f5d1f8009aff.arrow\n"
          ]
        }
      ],
      "source": [
        "# Let show a more complex processing with the full preparation of the SQuAD dataset\n",
        "# for training a model from Transformers\n",
        "def convert_to_features(batch):\n",
        "    # Tokenize contexts and questions (as pairs of inputs)\n",
        "    encodings = tokenizer(batch['context'], batch['question'], truncation=True)\n",
        "\n",
        "    # Compute start and end tokens for labels\n",
        "    start_positions, end_positions = [], []\n",
        "    for i, answer in enumerate(batch['answers']):\n",
        "        first_char = answer['answer_start'][0]\n",
        "        last_char = first_char + len(answer['text'][0]) - 1\n",
        "        start_positions.append(encodings.char_to_token(i, first_char))\n",
        "        end_positions.append(encodings.char_to_token(i, last_char))\n",
        "\n",
        "    encodings.update({'start_positions': start_positions, 'end_positions': end_positions})\n",
        "    return encodings\n",
        "\n",
        "encoded_dataset = dataset.map(convert_to_features, batched=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "KBnmSa46vSVl",
        "outputId": "17b8e72e-4434-4364-ec0c-67c5288037a4",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "column_names ['id', 'title', 'context', 'question', 'answers', 'input_ids', 'token_type_ids', 'attention_mask', 'start_positions', 'end_positions']\n",
            "start_positions [34, 45, 80, 34, 98]\n"
          ]
        }
      ],
      "source": [
        "# Now our dataset comprise the labels for the start and end position\n",
        "# as well as the offsets for converting back tokens\n",
        "# in span of the original string for evaluation\n",
        "print(\"column_names\", encoded_dataset.column_names)\n",
        "print(\"start_positions\", encoded_dataset[:5]['start_positions'])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "J1utN8K4muDW"
      },
      "source": [
        "### Image datasets"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vdYUjP60m-Ie"
      },
      "source": [
        "Images are loaded using Pillow:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "tAbviPxPm4Ce",
        "outputId": "5c38e76e-ae1c-45c2-c20c-110a806cab49"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "INFO:datasets.info:Loading Dataset Infos from /root/.cache/huggingface/modules/datasets_modules/datasets/cats_vs_dogs/d4fe9cf31b294ed8639aa58f7d8ee13fe189011837038ed9a774fde19a911fcb\n",
            "INFO:datasets.builder:Overwrite dataset info from restored data version if exists.\n",
            "INFO:datasets.info:Loading Dataset info from /root/.cache/huggingface/datasets/cats_vs_dogs/default/1.0.0/d4fe9cf31b294ed8639aa58f7d8ee13fe189011837038ed9a774fde19a911fcb\n",
            "WARNING:datasets.builder:Found cached dataset cats_vs_dogs (/root/.cache/huggingface/datasets/cats_vs_dogs/default/1.0.0/d4fe9cf31b294ed8639aa58f7d8ee13fe189011837038ed9a774fde19a911fcb)\n",
            "INFO:datasets.info:Loading Dataset info from /root/.cache/huggingface/datasets/cats_vs_dogs/default/1.0.0/d4fe9cf31b294ed8639aa58f7d8ee13fe189011837038ed9a774fde19a911fcb\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "{'image': <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x375 at 0x7FDE79A6AEC0>,\n",
              " 'labels': 0}"
            ]
          },
          "execution_count": 27,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "image_dataset = load_dataset(\"cats_vs_dogs\", split=\"train\")\n",
        "image_dataset[0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 392
        },
        "id": "z0q3Do11npXd",
        "outputId": "b545b95d-746f-4777-f233-a7851a44b72c"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x375 at 0x7FDE7458BF10>"
            ]
          },
          "execution_count": 28,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "image_dataset[0][\"image\"]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3URV1v5Zntxb"
      },
      "source": [
        "### Audio datasets"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ry1dqcUunzEW"
      },
      "source": [
        "Audio files are decoded using torchaudio or librosa using to the sampling rate of your choice.\n",
        "\n",
        "To read mp3 files you need ffmpeg and restart your runtime"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "k6FSL7S3odEl",
        "outputId": "13299935-e2ff-43b1-e622-33895c3426a7"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\r0% [Working]\r            \rHit:1 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease\n",
            "Hit:2 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  InRelease\n",
            "Hit:3 http://ppa.launchpad.net/c2d4u.team/c2d4u4.0+/ubuntu focal InRelease\n",
            "Hit:4 http://archive.ubuntu.com/ubuntu focal InRelease\n",
            "Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease\n",
            "Hit:6 http://archive.ubuntu.com/ubuntu focal-updates InRelease\n",
            "Hit:7 http://ppa.launchpad.net/cran/libgit2/ubuntu focal InRelease\n",
            "Hit:8 http://archive.ubuntu.com/ubuntu focal-backports InRelease\n",
            "Hit:9 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease\n",
            "Hit:10 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu focal InRelease\n",
            "Ign:11 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu focal InRelease\n",
            "Hit:12 http://ppa.launchpad.net/ubuntugis/ppa/ubuntu focal InRelease\n",
            "Err:13 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu focal Release\n",
            "  404  Not Found [IP: 185.125.190.52 80]\n",
            "Reading package lists... Done\n",
            "E: The repository 'http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu focal Release' does not have a Release file.\n",
            "N: Updating from such a repository can't be done securely, and is therefore disabled by default.\n",
            "N: See apt-secure(8) manpage for repository creation and user configuration details.\n"
          ]
        }
      ],
      "source": [
        "!add-apt-repository -y ppa:jonathonf/ffmpeg-4 && apt update && apt install -y ffmpeg"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "lpKCz3CHnsre",
        "outputId": "8bb79710-04a6-4563-c1db-d966296baa6b"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "INFO:datasets.info:Loading Dataset Infos from /root/.cache/huggingface/modules/datasets_modules/datasets/common_voice/220833898d6a60c50f621126e51fb22eb2dfe5244392c70dccd8e6e2f055f4bf\n",
            "/root/.cache/huggingface/modules/datasets_modules/datasets/common_voice/220833898d6a60c50f621126e51fb22eb2dfe5244392c70dccd8e6e2f055f4bf/common_voice.py:634: FutureWarning: \n",
            "            This version of the Common Voice dataset is deprecated.\n",
            "            You can download the latest one with\n",
            "            >>> load_dataset(\"mozilla-foundation/common_voice_11_0\", \"en\")\n",
            "            \n",
            "  warnings.warn(\n",
            "INFO:datasets.builder:Overwrite dataset info from restored data version if exists.\n",
            "INFO:datasets.info:Loading Dataset info from /root/.cache/huggingface/datasets/common_voice/fi/6.1.0/220833898d6a60c50f621126e51fb22eb2dfe5244392c70dccd8e6e2f055f4bf\n",
            "WARNING:datasets.builder:Found cached dataset common_voice (/root/.cache/huggingface/datasets/common_voice/fi/6.1.0/220833898d6a60c50f621126e51fb22eb2dfe5244392c70dccd8e6e2f055f4bf)\n",
            "INFO:datasets.info:Loading Dataset info from /root/.cache/huggingface/datasets/common_voice/fi/6.1.0/220833898d6a60c50f621126e51fb22eb2dfe5244392c70dccd8e6e2f055f4bf\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "{'client_id': '4eeeb22a3bbb52e5215593a09a845f0f8c496e0a7c498c6d1e9e5e0f8730f79bf16b2b30483dfcc771d430918f27e3ce8b546d068017302109c5c76ca75b0944',\n",
              " 'path': '/root/.cache/huggingface/datasets/downloads/extracted/cb1c332c2b5d74b2663eb9d5a6181c2972a0a069831f91fadaac8362eb7899fe/cv-corpus-6.1-2020-12-11/fi/clips/common_voice_fi_22986631.mp3',\n",
              " 'audio': {'path': '/root/.cache/huggingface/datasets/downloads/extracted/cb1c332c2b5d74b2663eb9d5a6181c2972a0a069831f91fadaac8362eb7899fe/cv-corpus-6.1-2020-12-11/fi/clips/common_voice_fi_22986631.mp3',\n",
              "  'array': array([ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,\n",
              "         -1.04925891e-06,  4.06746835e-07,  8.70920871e-07]),\n",
              "  'sampling_rate': 48000},\n",
              " 'sentence': 'Mitä nyt tekisimme?',\n",
              " 'up_votes': 2,\n",
              " 'down_votes': 0,\n",
              " 'age': 'thirties',\n",
              " 'gender': 'male',\n",
              " 'accent': '',\n",
              " 'locale': 'fi',\n",
              " 'segment': \"''\"}"
            ]
          },
          "execution_count": 30,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from datasets import load_dataset\n",
        "audio_dataset = load_dataset(\"common_voice\", \"fi\", split=\"train\")\n",
        "audio_dataset[0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2Uw3iTdfo9mu",
        "outputId": "9f6d13c9-7cbf-4f7b-f7ae-fcbfea1a5a11"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(array([ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,\n",
              "        -1.04925891e-06,  4.06746835e-07,  8.70920871e-07]),\n",
              " 48000)"
            ]
          },
          "execution_count": 31,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "audio_dataset[0][\"audio\"][\"array\"], audio_dataset[0][\"audio\"][\"sampling_rate\"]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "q6E2SnHupF5l"
      },
      "source": [
        "Audio decoding and resampling is done in-the-fly when accessing examples. You can change the sampling rate this way:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "nuoyq-E2pJKf",
        "outputId": "99fb9f52-00e0-462a-e772-e93b790e0009"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(array([ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,\n",
              "        -4.28493877e-07, -1.03890284e-06, -5.02728994e-07]),\n",
              " 16000)"
            ]
          },
          "execution_count": 32,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from datasets import Audio\n",
        "audio_dataset = audio_dataset.cast_column(\"audio\", Audio(sampling_rate=16_000))\n",
        "audio_dataset[0][\"audio\"][\"array\"], audio_dataset[0][\"audio\"][\"sampling_rate\"]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "NzOXxNzQvSVo",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "## Formatting outputs for PyTorch, Tensorflow, Numpy, Pandas\n",
        "\n",
        "Now that we have tokenized our inputs, we probably want to use this dataset in a `torch.Dataloader` or a `tf.data.Dataset`. There are various ways to approach this.\n",
        "\n",
        "Using the `set_format()` method, we can:\n",
        "\n",
        "- format the indexing (`__getitem__`) to return numpy/pytorch/tensorflow tensors, instead of python objects, and\n",
        "- format the indexing (`__getitem__`) to return only the subset of the columns that we need for our model inputs.\n",
        "\n",
        "  We don't want the columns `id` or `title` as inputs to train our model, but we could still want to keep them in the dataset, for instance for the evaluation of the model.\n",
        "    \n",
        "This is handled by the `.set_format(type: Union[None, str], columns: Union[None, str, List[str]])` where:\n",
        "\n",
        "- `type` define the return type for our dataset `__getitem__` method and is one of `[None, 'numpy', 'pandas', 'torch', 'tensorflow']` (`None` means return python objects), and\n",
        "- `columns` define the columns returned by `__getitem__` and takes the name of a column in the dataset or a list of columns to return (`None` means return all columns)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "aU2h_qQDvSVo",
        "outputId": "46af4ce3-d232-440a-d899-30d30c8b16f9",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'attention_mask': <tf.Tensor: shape=(172,), dtype=int64, numpy=\n",
            "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])>,\n",
            " 'end_positions': <tf.Tensor: shape=(), dtype=int64, numpy=46>,\n",
            " 'input_ids': <tf.Tensor: shape=(172,), dtype=int64, numpy=\n",
            "array([  101,  3198,  5308,  1851,  1108,  1126,  1237,  1709,  1342,\n",
            "        1106,  4959,  1103,  3628,  1104,  1103,  1305,  2289,  1453,\n",
            "         113,  4279,   114,  1111,  1103,  1410,  1265,   119,  1109,\n",
            "        1237,  2289,  3047,   113, 10402,   114,  3628,  7068, 14722,\n",
            "        2378,  1103,  1305,  2289,  3047,   113, 24743,   114,  3628,\n",
            "        2938, 13598,  1572,   782,  1275,  1106,  7379,  1147,  1503,\n",
            "        3198,  5308,  1641,   119,  1109,  1342,  1108,  1307,  1113,\n",
            "        1428,   128,   117,  1446,   117,  1120, 12388,   112,   188,\n",
            "        3339,  1107,  1103,  1727,  2948,  2410,  3894,  1120,  3364,\n",
            "       10200,   117,  1756,   119,  1249,  1142,  1108,  1103, 13163,\n",
            "        3198,  5308,   117,  1103,  2074, 13463,  1103,   107,  5404,\n",
            "        5453,   107,  1114,  1672,  2284,   118, 12005, 11751,   117,\n",
            "        1112,  1218,  1112,  7818, 28117, 20080, 16264,  1103,  3904,\n",
            "        1104, 10505,  1296,  3198,  5308,  1342,  1114,  2264,   183,\n",
            "       15447, 16179,   113,  1223,  1134,  1103,  1342,  1156,  1138,\n",
            "        1151,  1227,  1112,   107,  3198,  5308,   149,   107,   114,\n",
            "         117,  1177,  1115,  1103,  7998,  1180, 15199,  2672,  1103,\n",
            "        4944,   183, 15447, 16179,  1851,   119,   102,  5979,  4279,\n",
            "        1264,  2533,  1103, 24743,  1120,  3198,  5308,  1851,   136,\n",
            "         102])>,\n",
            " 'start_positions': <tf.Tensor: shape=(), dtype=int64, numpy=45>,\n",
            " 'token_type_ids': <tf.Tensor: shape=(172,), dtype=int64, numpy=\n",
            "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])>}\n"
          ]
        }
      ],
      "source": [
        "columns_to_return = ['input_ids', 'token_type_ids', 'attention_mask', 'start_positions', 'end_positions']\n",
        "\n",
        "# Uncomment whichever one is appropriate for you\n",
        "# encoded_dataset.set_format(type='torch', columns=columns_to_return)\n",
        "encoded_dataset.set_format(type='tensorflow', columns=columns_to_return)\n",
        "\n",
        "# Our dataset indexing output is now ready for being used in a pytorch dataloader\n",
        "pprint(encoded_dataset[1], compact=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Wj1ukGIuvSVq",
        "outputId": "f7c6014b-dfff-4885-b696-d93d812a04b3",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['id', 'title', 'context', 'question', 'answers', 'input_ids', 'token_type_ids', 'attention_mask', 'start_positions', 'end_positions']\n"
          ]
        }
      ],
      "source": [
        "# Note that the columns are not removed from the dataset, just not returned when calling __getitem__\n",
        "# Similarly the inner type of the dataset is not changed to torch.Tensor, the conversion and filtering is done on-the-fly when querying the dataset\n",
        "print(encoded_dataset.column_names)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pWmmUdatasetsvSVs",
        "outputId": "bb959fb6-22cc-42fa-c93e-d0c924cc3ad0",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'answers': {'answer_start': [249, 249, 249],\n",
            "             'text': ['Carolina Panthers', 'Carolina Panthers',\n",
            "                      'Carolina Panthers']},\n",
            " 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n",
            " 'context': 'Super Bowl 50 was an American football game to determine the '\n",
            "            'champion of the National Football League (NFL) for the 2015 '\n",
            "            'season. The American Football Conference (AFC) champion Denver '\n",
            "            'Broncos defeated the National Football Conference (NFC) champion '\n",
            "            'Carolina Panthers 24–10 to earn their third Super Bowl title. The '\n",
            "            \"game was played on February 7, 2016, at Levi's Stadium in the San \"\n",
            "            'Francisco Bay Area at Santa Clara, California. As this was the '\n",
            "            '50th Super Bowl, the league emphasized the \"golden anniversary\" '\n",
            "            'with various gold-themed initiatives, as well as temporarily '\n",
            "            'suspending the tradition of naming each Super Bowl game with '\n",
            "            'Roman numerals (under which the game would have been known as '\n",
            "            '\"Super Bowl L\"), so that the logo could prominently feature the '\n",
            "            'Arabic numerals 50.',\n",
            " 'end_positions': 46,\n",
            " 'id': '56be4db0acb8001400a502ed',\n",
            " 'input_ids': [101, 3198, 5308, 1851, 1108, 1126, 1237, 1709, 1342, 1106, 4959,\n",
            "               1103, 3628, 1104, 1103, 1305, 2289, 1453, 113, 4279, 114, 1111,\n",
            "               1103, 1410, 1265, 119, 1109, 1237, 2289, 3047, 113, 10402, 114,\n",
            "               3628, 7068, 14722, 2378, 1103, 1305, 2289, 3047, 113, 24743, 114,\n",
            "               3628, 2938, 13598, 1572, 782, 1275, 1106, 7379, 1147, 1503, 3198,\n",
            "               5308, 1641, 119, 1109, 1342, 1108, 1307, 1113, 1428, 128, 117,\n",
            "               1446, 117, 1120, 12388, 112, 188, 3339, 1107, 1103, 1727, 2948,\n",
            "               2410, 3894, 1120, 3364, 10200, 117, 1756, 119, 1249, 1142, 1108,\n",
            "               1103, 13163, 3198, 5308, 117, 1103, 2074, 13463, 1103, 107, 5404,\n",
            "               5453, 107, 1114, 1672, 2284, 118, 12005, 11751, 117, 1112, 1218,\n",
            "               1112, 7818, 28117, 20080, 16264, 1103, 3904, 1104, 10505, 1296,\n",
            "               3198, 5308, 1342, 1114, 2264, 183, 15447, 16179, 113, 1223, 1134,\n",
            "               1103, 1342, 1156, 1138, 1151, 1227, 1112, 107, 3198, 5308, 149,\n",
            "               107, 114, 117, 1177, 1115, 1103, 7998, 1180, 15199, 2672, 1103,\n",
            "               4944, 183, 15447, 16179, 1851, 119, 102, 5979, 4279, 1264, 2533,\n",
            "               1103, 24743, 1120, 3198, 5308, 1851, 136, 102],\n",
            " 'question': 'Which NFL team represented the NFC at Super Bowl 50?',\n",
            " 'start_positions': 45,\n",
            " 'title': 'Super_Bowl_50',\n",
            " 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
            "                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}\n"
          ]
        }
      ],
      "source": [
        "# We can remove the formatting with `.reset_format()`\n",
        "# or, identically, a call to `.set_format()` with no arguments\n",
        "encoded_dataset.reset_format()\n",
        "\n",
        "pprint(encoded_dataset[1], compact=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "VyUOA07svSVu",
        "outputId": "343d5e56-2d7b-4c4b-db2d-e72282e9e377",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'columns': ['id',\n",
            "             'title',\n",
            "             'context',\n",
            "             'question',\n",
            "             'answers',\n",
            "             'input_ids',\n",
            "             'token_type_ids',\n",
            "             'attention_mask',\n",
            "             'start_positions',\n",
            "             'end_positions'],\n",
            " 'format_kwargs': {},\n",
            " 'output_all_columns': False,\n",
            " 'type': None}\n"
          ]
        }
      ],
      "source": [
        "# The current format can be checked with `.format`,\n",
        "# which is a dict of the type and formatting\n",
        "pprint(encoded_dataset.format)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Gpa2-z37lUGc",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "There is also a convenience method, `to_tf_dataset()`, for the creation of `tf.data.Dataset` objects directly from a HuggingFace `Dataset`. An example will be shown below - when using this method, it is sufficient to pass the `columns` argument and your `DataCollator` - make sure you set the `return_tensors` argument of your `DataCollator` to `tf` or `np`, though, because TensorFlow won't be happy if you start passing it PyTorch Tensors!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xyi2eMeSvSVv",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "# Wrapping this all up\n",
        "\n",
        "Let's wrap this all up with the full code to load and prepare SQuAD for training a PyTorch or TensorFlow model from HuggingFace `transformers` library.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "l0j8BPLi6Qlv",
        "outputId": "334e9749-6187-473b-e5f5-805d8fbc9e22",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.29.2)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.0)\n",
            "Requirement already satisfied: huggingface-hub<1.0,>=0.14.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.14.1)\n",
            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.22.4)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n",
            "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0)\n",
            "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2022.10.31)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.27.1)\n",
            "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.13.3)\n",
            "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.65.0)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (2023.4.0)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (4.5.0)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2022.12.7)\n",
            "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.12)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n"
          ]
        }
      ],
      "source": [
        "!pip install transformers"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 208,
          "referenced_widgets": [
            "98a45b56fdb040418e42f7c59e28bc14",
            "bf67657a3f5d47a79d078beb8589a098",
            "f0fa32d1b256417db2850569674350d9",
            "8f77a47ffc79400cbd84280e8bbc9979",
            "defca41aeb5b4f8689930bfea05915f1",
            "dbc2e3e6c2cb4c108d46430e132777a1",
            "f3aa463526554d9da89c2fd0fe8efe2a",
            "329b19be2aff486f8a737751ead4d79c",
            "5a78f50d4f4742f08ee3abe4e9c38129",
            "74ff87c33af14cc093694692397a9ee0",
            "cf01a82f5de54ffb97af38ca88e170c2"
          ]
        },
        "id": "QvExTIZWvSVw",
        "outputId": "1ba5ebeb-d4ac-4a3f-b853-2800a3714913",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "INFO:datasets.builder:No config specified, defaulting to the single config: squad/plain_text\n",
            "INFO:datasets.info:Loading Dataset Infos from /root/.cache/huggingface/modules/datasets_modules/datasets/squad/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453\n",
            "INFO:datasets.builder:Overwrite dataset info from restored data version if exists.\n",
            "INFO:datasets.info:Loading Dataset info from /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453\n",
            "WARNING:datasets.builder:Found cached dataset squad (/root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453)\n",
            "INFO:datasets.info:Loading Dataset info from /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453\n"
          ]
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "98a45b56fdb040418e42f7c59e28bc14",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "  0%|          | 0/2 [00:00<?, ?it/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-552174beded062cc.arrow\n",
            "WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/squad/plain_text/1.0.0/d6ec3ceb99ca480ce37cdd35555d6cb2511d223b9150cce08a837ef62ffea453/cache-cfb8e391f3306c89.arrow\n"
          ]
        }
      ],
      "source": [
        "import torch\n",
        "from datasets import load_dataset\n",
        "from transformers import BertTokenizerFast\n",
        "\n",
        "# Load our training dataset and tokenizer\n",
        "dataset = load_dataset('squad')\n",
        "tokenizer = BertTokenizerFast.from_pretrained('bert-base-cased')\n",
        "\n",
        "def get_correct_alignement(context, answer):\n",
        "    \"\"\" Some original examples in SQuAD have indices wrong by 1 or 2 character. We test and fix this here. \"\"\"\n",
        "    gold_text = answer['text'][0]\n",
        "    start_idx = answer['answer_start'][0]\n",
        "    end_idx = start_idx + len(gold_text)\n",
        "    if context[start_idx:end_idx] == gold_text:\n",
        "        return start_idx, end_idx       # When the gold label position is good\n",
        "    elif context[start_idx-1:end_idx-1] == gold_text:\n",
        "        return start_idx-1, end_idx-1   # When the gold label is off by one character\n",
        "    elif context[start_idx-2:end_idx-2] == gold_text:\n",
        "        return start_idx-2, end_idx-2   # When the gold label is off by two character\n",
        "    else:\n",
        "        raise ValueError()\n",
        "\n",
        "# Tokenize our training dataset\n",
        "def convert_to_features(example_batch):\n",
        "    # Tokenize contexts and questions (as pairs of inputs)\n",
        "    encodings = tokenizer(example_batch['context'], example_batch['question'], truncation=True)\n",
        "\n",
        "    # Compute start and end tokens for labels using Transformers's fast tokenizers alignement methods.\n",
        "    start_positions, end_positions = [], []\n",
        "    for i, (context, answer) in enumerate(zip(example_batch['context'], example_batch['answers'])):\n",
        "        start_idx, end_idx = get_correct_alignement(context, answer)\n",
        "        start_positions.append(encodings.char_to_token(i, start_idx))\n",
        "        end_positions.append(encodings.char_to_token(i, end_idx-1))\n",
        "    encodings.update({'start_positions': start_positions, 'end_positions': end_positions})\n",
        "    return encodings\n",
        "\n",
        "encoded_dataset = dataset.map(convert_to_features, batched=True)\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tFfi22D9lUGc",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "That's the end of the shared preprocessing! Next, for Torch, we set our dataset format and create a `dataloader`. If you're using TensorFlow, skip to the next block."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-yhzlEoqlUGc",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [],
      "source": [
        "# Format our dataset to outputs torch.Tensor to train a pytorch model\n",
        "columns = ['input_ids', 'token_type_ids', 'attention_mask', 'start_positions', 'end_positions']\n",
        "encoded_dataset.set_format(type='torch', columns=columns)\n",
        "\n",
        "# Instantiate a PyTorch Dataloader around our dataset\n",
        "# Let's do dynamic batching (pad on the fly with our own collate_fn)\n",
        "def collate_fn(examples):\n",
        "    return tokenizer.pad(examples, return_tensors='pt')\n",
        "dataloader = torch.utils.data.DataLoader(encoded_dataset['train'], collate_fn=collate_fn, batch_size=8)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PfyT0VixlUGd",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "For TensorFlow, we use the `to_tf_dataset()` method to get a `tf.data.Dataset`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XlVPT5PjlUGd",
        "outputId": "7bd6aeb5-c080-4e35-b990-770a5d7f601d",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "You're using a BertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\n"
          ]
        }
      ],
      "source": [
        "columns = ['input_ids', 'token_type_ids', 'attention_mask', 'start_positions', 'end_positions']\n",
        "\n",
        "# Let's do dynamic batching (pad on the fly with our own collate_fn)\n",
        "def collate_fn(examples):\n",
        "    return tokenizer.pad(examples, return_tensors='np')\n",
        "\n",
        "# to_tf_dataset() returns a tf.data.Dataset that we can pass straight to model.fit().\n",
        "encoded_tf_dataset = encoded_dataset['train'].to_tf_dataset(\n",
        "    columns=columns,\n",
        "    collate_fn=collate_fn,\n",
        "    batch_size=8,\n",
        "    shuffle=True,\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gzxxvd3nlUGd",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "Next, we initialize our model. The next two blocks show model creation and training in Torch. For TensorFlow, skip ahead!"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4mHnwMx2vSVx",
        "outputId": "da56eb4d-abfd-487d-c665-3ddec1387b43",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Some weights of the model checkpoint at bert-base-cased were not used when initializing BertForQuestionAnswering: ['cls.predictions.bias', 'cls.seq_relationship.bias', 'cls.predictions.transform.dense.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.dense.weight', 'cls.seq_relationship.weight', 'cls.predictions.decoder.weight', 'cls.predictions.transform.LayerNorm.bias']\n",
            "- This IS expected if you are initializing BertForQuestionAnswering from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
            "- This IS NOT expected if you are initializing BertForQuestionAnswering from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n",
            "Some weights of BertForQuestionAnswering were not initialized from the model checkpoint at bert-base-cased and are newly initialized: ['qa_outputs.weight', 'qa_outputs.bias']\n",
            "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
          ]
        }
      ],
      "source": [
        "# Let's load a pretrained Bert model and a simple optimizer\n",
        "from transformers import AutoModelForQuestionAnswering\n",
        "\n",
        "model = AutoModelForQuestionAnswering.from_pretrained('bert-base-cased', return_dict=True)\n",
        "optimizer = torch.optim.Adam(model.parameters(), lr=1e-5)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "biqDH9vpvSVz",
        "outputId": "130d9dd3-e822-4a7e-90a9-a2bfef66c2d9",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Step 0 - loss: 5.65\n",
            "Step 1 - loss: 5.63\n",
            "Step 2 - loss: 5.18\n",
            "Step 3 - loss: 5.6\n",
            "Step 4 - loss: 5.29\n",
            "Step 5 - loss: 5.51\n",
            "Step 6 - loss: 5.49\n"
          ]
        }
      ],
      "source": [
        "# Now let's train our model\n",
        "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
        "\n",
        "model.train().to(device)\n",
        "for i, batch in enumerate(dataloader):\n",
        "    batch.to(device)\n",
        "    outputs = model(**batch)\n",
        "    loss = outputs.loss\n",
        "    loss.backward()\n",
        "    optimizer.step()\n",
        "    model.zero_grad()\n",
        "    print(f'Step {i} - loss: {loss:.3}')\n",
        "    if i > 5:\n",
        "        break"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "HmBZ6FZnlUGd",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "Next, we'll initialize and train our TensorFlow model. Note the lack of a loss argument when we `compile()` our model here! All Transformers models support computing loss internally. When no loss argument is provided, the model will use its internal loss - this is especially helpful for cases like QA models, when the loss can be quite complex."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XnX5xPd9lUGd",
        "outputId": "7b779ab0-9959-4f01-f724-6503039a6831",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "All model checkpoint layers were used when initializing TFBertForQuestionAnswering.\n",
            "\n",
            "Some layers of TFBertForQuestionAnswering were not initialized from the model checkpoint at bert-base-cased and are newly initialized: ['qa_outputs']\n",
            "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
            "No loss specified in compile() - the model's internal loss computation will be used as the loss. Don't panic - this is a common way to train TensorFlow models in Transformers! To disable this behaviour please pass a loss argument, or explicitly pass `loss=None` if you do not want your model to compute a loss.\n"
          ]
        }
      ],
      "source": [
        "# Let's load a pretrained Bert model and a simple optimizer\n",
        "from transformers import TFAutoModelForQuestionAnswering\n",
        "import tensorflow as tf\n",
        "\n",
        "model = TFAutoModelForQuestionAnswering.from_pretrained('bert-base-cased')\n",
        "# No loss argument!\n",
        "model.compile(optimizer=tf.keras.optimizers.Adam(1e-5))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "NcOtZ86mlUGe",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "Now that all the preprocessing is done, training is an extremely comforting single line of Keras. We stop training early with the `steps_per_epoch` argument - you should probably leave that one out of your actual production code!"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "uJ4B9qU-lUGe",
        "outputId": "1243a53e-e292-49eb-eb77-c54f35786510",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "3/3 [==============================] - 73s 927ms/step - loss: 5.5575\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "<keras.callbacks.History at 0x7fde0ab9e530>"
            ]
          },
          "execution_count": 44,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "model.fit(encoded_tf_dataset, epochs=1, steps_per_epoch=3)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ySL-vDadvSV8",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "Example with a NER metric: `seqeval`"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "f4uZym7MvSV9",
        "outputId": "2ba24e81-9b35-4284-da34-38221885a4da",
        "pycharm": {
          "name": "#%%\n"
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: evaluate in /usr/local/lib/python3.10/dist-packages (0.4.0)\n",
            "Requirement already satisfied: seqeval in /usr/local/lib/python3.10/dist-packages (1.2.2)\n",
            "Requirement already satisfied: datasets>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from evaluate) (2.12.0)\n",
            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from evaluate) (1.22.4)\n",
            "Requirement already satisfied: dill in /usr/local/lib/python3.10/dist-packages (from evaluate) (0.3.6)\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from evaluate) (1.5.3)\n",
            "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from evaluate) (2.27.1)\n",
            "Requirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.10/dist-packages (from evaluate) (4.65.0)\n",
            "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from evaluate) (3.2.0)\n",
            "Requirement already satisfied: multiprocess in /usr/local/lib/python3.10/dist-packages (from evaluate) (0.70.14)\n",
            "Requirement already satisfied: fsspec[http]>=2021.05.0 in /usr/local/lib/python3.10/dist-packages (from evaluate) (2023.4.0)\n",
            "Requirement already satisfied: huggingface-hub>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from evaluate) (0.14.1)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from evaluate) (23.1)\n",
            "Requirement already satisfied: responses<0.19 in /usr/local/lib/python3.10/dist-packages (from evaluate) (0.18.0)\n",
            "Requirement already satisfied: scikit-learn>=0.21.3 in /usr/local/lib/python3.10/dist-packages (from seqeval) (1.2.2)\n",
            "Requirement already satisfied: pyarrow>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets>=2.0.0->evaluate) (9.0.0)\n",
            "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets>=2.0.0->evaluate) (3.8.4)\n",
            "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets>=2.0.0->evaluate) (6.0)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.7.0->evaluate) (3.12.0)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.7.0->evaluate) (4.5.0)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->evaluate) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->evaluate) (2022.12.7)\n",
            "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->evaluate) (2.0.12)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->evaluate) (3.4)\n",
            "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->seqeval) (1.10.1)\n",
            "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->seqeval) (1.2.0)\n",
            "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21.3->seqeval) (3.1.0)\n",
            "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->evaluate) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->evaluate) (2022.7.1)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets>=2.0.0->evaluate) (23.1.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets>=2.0.0->evaluate) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets>=2.0.0->evaluate) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets>=2.0.0->evaluate) (1.9.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets>=2.0.0->evaluate) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets>=2.0.0->evaluate) (1.3.1)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->evaluate) (1.16.0)\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "{'MISC': {'precision': 0.0, 'recall': 0.0, 'f1': 0.0, 'number': 1},\n",
              " 'PER': {'precision': 1.0, 'recall': 1.0, 'f1': 1.0, 'number': 1},\n",
              " 'overall_precision': 0.5,\n",
              " 'overall_recall': 0.5,\n",
              " 'overall_f1': 0.5,\n",
              " 'overall_accuracy': 0.8}"
            ]
          },
          "execution_count": 45,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "!pip install evaluate seqeval\n",
        "import evaluate\n",
        "ner_metric = evaluate.load('seqeval')\n",
        "references = [['O', 'O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n",
        "predictions =  [['O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]\n",
        "ner_metric.compute(predictions=predictions, references=references)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ctY6AIAilLdH",
        "pycharm": {
          "name": "#%% md\n"
        }
      },
      "source": [
        "# Adding a new dataset\n",
        "\n",
        "Datasets can be added with a direct upload using `my_dataset.push_to_hub('username/my_dataset_name')` to a user or organization  on the Hugging Face Hub (like for models in `transformers`). In this case the dataset will be accessible under the gien user/organization name, e.g. `datasets.load_dataset('thomwolf/squad')`.\n",
        "\n",
        "You can also upload your data files directly on the website (see [step-by-step guide here](https://huggingface.co/docs/datasets/upload_dataset)) or using git (see [how to do it using git](https://huggingface.co/docs/datasets/share))."
      ]
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "gpuType": "T4",
      "name": "HuggingFace datasets library - Overview",
      "provenance": [],
      "toc_visible": true
    },
    "file_extension": ".py",
    "gpuClass": "standard",
    "kernelspec": {
      "display_name": "Python 3 (ipykernel)",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.0"
    },
    "mimetype": "text/x-python",
    "name": "python",
    "npconvert_exporter": "python",
    "pygments_lexer": "ipython3",
    "version": 3,
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "09e1966daf9e481da118af73af218d88": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "0b3581ddec0b4cabb33593e272a50249": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b3d5c33915084f26b060e086138bf898",
            "placeholder": "​",
            "style": "IPY_MODEL_429bdd21215f4ef38687daa6def128f8",
            "value": " 1057/1057 [00:00&lt;00:00, 2026.75 examples/s]"
          }
        },
        "21a2deb93c614338a9944b5032220c8d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "329b19be2aff486f8a737751ead4d79c": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "429bdd21215f4ef38687daa6def128f8": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "51f49669810a4b5f941c18e4b1896866": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_21a2deb93c614338a9944b5032220c8d",
            "placeholder": "​",
            "style": "IPY_MODEL_d8494cdc5ce04f4690a9adadb921de4c",
            "value": " 981/1057 [00:00&lt;00:00, 1238.52 examples/s]"
          }
        },
        "5a78f50d4f4742f08ee3abe4e9c38129": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "60682d73f15b4020b57f87dabba5f320": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d8edc4f0a0a44882a7beeca0321276d6",
            "max": 1057,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_09e1966daf9e481da118af73af218d88",
            "value": 1057
          }
        },
        "74ff87c33af14cc093694692397a9ee0": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "757dd94ac5e04ff09ee6fab419f1692d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7edfe69de64a4af18febff677b57ab65": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_dc5418db9c3e49cd95b3f85f0dc562ab",
              "IPY_MODEL_8db902b229e545649282c130c2a049b8",
              "IPY_MODEL_0b3581ddec0b4cabb33593e272a50249"
            ],
            "layout": "IPY_MODEL_d580bdf43d1e44b8afcfefc962410d73"
          }
        },
        "8db902b229e545649282c130c2a049b8": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_757dd94ac5e04ff09ee6fab419f1692d",
            "max": 1057,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_d46a381be01a460cb49cc838c5aa29c0",
            "value": 1057
          }
        },
        "8f77a47ffc79400cbd84280e8bbc9979": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_74ff87c33af14cc093694692397a9ee0",
            "placeholder": "​",
            "style": "IPY_MODEL_cf01a82f5de54ffb97af38ca88e170c2",
            "value": " 2/2 [00:00&lt;00:00, 33.51it/s]"
          }
        },
        "961929641bfc4b06b0603bd792c6d351": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_c497e117ef7142338bd45e57b722616b",
              "IPY_MODEL_60682d73f15b4020b57f87dabba5f320",
              "IPY_MODEL_51f49669810a4b5f941c18e4b1896866"
            ],
            "layout": "IPY_MODEL_f4da65dff9374ace9b92d341ec2793f1"
          }
        },
        "98a45b56fdb040418e42f7c59e28bc14": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_bf67657a3f5d47a79d078beb8589a098",
              "IPY_MODEL_f0fa32d1b256417db2850569674350d9",
              "IPY_MODEL_8f77a47ffc79400cbd84280e8bbc9979"
            ],
            "layout": "IPY_MODEL_defca41aeb5b4f8689930bfea05915f1"
          }
        },
        "9b5b8acd984f44d696f8f83862f20bf1": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b3d5c33915084f26b060e086138bf898": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "bf67657a3f5d47a79d078beb8589a098": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_dbc2e3e6c2cb4c108d46430e132777a1",
            "placeholder": "​",
            "style": "IPY_MODEL_f3aa463526554d9da89c2fd0fe8efe2a",
            "value": "100%"
          }
        },
        "c497e117ef7142338bd45e57b722616b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9b5b8acd984f44d696f8f83862f20bf1",
            "placeholder": "​",
            "style": "IPY_MODEL_f9fdd11e8b6f411e818447528be333df",
            "value": "Map:  93%"
          }
        },
        "cbcbb3853ed544f8b946aab31eaa7f56": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cf01a82f5de54ffb97af38ca88e170c2": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d46a381be01a460cb49cc838c5aa29c0": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "d580bdf43d1e44b8afcfefc962410d73": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": "hidden",
            "width": null
          }
        },
        "d8494cdc5ce04f4690a9adadb921de4c": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d8edc4f0a0a44882a7beeca0321276d6": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dbc2e3e6c2cb4c108d46430e132777a1": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dc5418db9c3e49cd95b3f85f0dc562ab": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_cbcbb3853ed544f8b946aab31eaa7f56",
            "placeholder": "​",
            "style": "IPY_MODEL_e21ced63bda64379832735d5aa2e0178",
            "value": "Map: 100%"
          }
        },
        "defca41aeb5b4f8689930bfea05915f1": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e21ced63bda64379832735d5aa2e0178": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f0fa32d1b256417db2850569674350d9": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_329b19be2aff486f8a737751ead4d79c",
            "max": 2,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_5a78f50d4f4742f08ee3abe4e9c38129",
            "value": 2
          }
        },
        "f3aa463526554d9da89c2fd0fe8efe2a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f4da65dff9374ace9b92d341ec2793f1": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": "hidden",
            "width": null
          }
        },
        "f9fdd11e8b6f411e818447528be333df": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
